package com.hospital.workstation.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hospital.common.annotation.ExcelDictFormat;
import com.hospital.common.convert.ExcelDictConvert;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;


/**
 * 药历用药汇总视图对象 hospital_medical_record
 *
 * @author whb
 * @date 2023-02-13
 */
@Data
@ExcelIgnoreUnannotated
public class MedicalRecordVo {

    private static final long serialVersionUID = 1L;

    /**
     * 用药汇总ID
     */
    @ExcelProperty(value = "用药汇总ID")
    private Long id;

    /**
     * 病历号
     */
    @ExcelProperty(value = "病历号")
    private Integer medicalRecordNo;

    /**
     * 医嘱明细ID，HIS产生单条医嘱唯一标识
     */
    @ExcelProperty(value = "医嘱明细ID，HIS产生单条医嘱唯一标识")
    private String orderItemId;
    /**
     * 医嘱组号，HIS产生同一次就诊有相同的医嘱组号
     */
    @ExcelProperty(value = "医嘱组号，HIS产生同一次就诊有相同的医嘱组号")
    private String orderGroupId;

    /**
     * 用药目的
     */
    @ExcelProperty(value = "用药目的")
    private String purpose;

    /**
     * 药物名称
     */
    @ExcelProperty(value = "药物名称")
    private String pillsName;

    /**
     * 用法用量
     */
    @ExcelProperty(value = "用法用量")
    private String amount;

    /**
     * 单次剂量
     */
    @ExcelProperty(value = "单次剂量")
    private String amountPer;

    /**
     * 用法
     */
    @ExcelProperty(value = "用法")
    private String pillsUsage;

    /**
     * 频次
     */
    @ExcelProperty(value = "频次")
    private String frequency;

    /**
     * 是否继续使用，字典：系统是否（Y是 N否）
     */
    @ExcelProperty(value = "是否继续使用，字典：系统是否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "Y=是,N=否")
    private String isContinue;

    /**
     * 用药周期
     */
    private String pillsCycle;

    /**
     * 起始日期
     */
    @ExcelProperty(value = "起始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime beginDate;

    /**
     * 结束日期
     */
    @ExcelProperty(value = "结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime endDate;

    /**
     * 结束日期
     */
    private String endDateStr;

    /**
     * 用药类型（0现病史 1既往病史 2初始药物治疗 3药历小结 4药品医嘱 5初始饮片 6小结饮片 7出院用药）
     */
    @ExcelProperty(value = "用药类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=现病史,1=既往病史,2=初始药物治疗,3-药历小结,4-药品医嘱 5-初始饮片 6-小结饮片 7-出院用药 8-教育用药 9-教育用药中药饮片")
    private String medicalType;

    /**
     * 子医嘱列表
     */
    List<MedicalRecordVo> childMedicalRecordList;
}
